iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
AI 自動化

30 天打造我的 AI 自動化工作流系列 第 12 篇

Day 12|讓 Workflow 學會判斷:認識 IF Node 與條件分流

  • 分享至 

  • xImage
  •  

昨天成功把 AI 處理完成的結果自動寫進 Google Sheets。

目前的流程已經可以做到:

外部資料 → Webhook → AI 處理 → Google Sheets 儲存

但目前不管收到什麼資料,基本上都會走完全相同的流程。

這讓我想到一個問題:

如果不同的資料需要不同的處理方式,要怎麼辦?

例如收到「緊急」的內容時,我可能希望另外處理,而一般內容就直接儲存。

所以今天要來認識 n8n 的 IF Node,讓 Workflow 開始可以自己判斷要走哪一條路。


IF Node 是什麼?

如果有學過程式設計,應該多少看過:

if 條件成立
    做 A
else
    做 B

n8n 的 IF Node 其實就是類似的概念,只是可以直接透過圖形化介面設定。

例如:

收到資料

↓

判斷 status 是否為 urgent

↓

TRUE → 緊急處理

FALSE → 一般處理

也就是讓 Workflow 不再只能一直往同一個方向執行,而是可以根據資料決定接下來要做什麼。


今天要做的 Workflow

今天先做一個簡單的分類測試。

假設 Webhook 收到:

{
  "text": "系統目前無法正常登入",
  "status": "urgent"
}

希望 Workflow 判斷 status。

如果:

status = urgent

就走 True。

如果不是 urgent,就走 False。

整個流程大概會變成:

Webhook

↓

IF Node:status 是否等於 urgent?

↙      ↘

True     False

↓      ↓

緊急處理   一般處理

https://ithelp.ithome.com.tw/upload/images/20260926/201788354cjRmU76z7.png

圖 1 使用 IF Node 建立條件分流


Step 1:準備測試資料

今天可以繼續使用 Webhook。

先傳入一筆資料:

{
  "text": "系統目前無法正常登入",
  "status": "urgent"
}

執行後,可以先確認 Webhook 有沒有正確收到:

text
status

這兩個欄位。

https://ithelp.ithome.com.tw/upload/images/20260926/20178835TYWOSHgqNn.png

圖 2 Webhook 接收到包含 status 的測試資料


Step 2:加入 IF Node

接下來在 Webhook 後面加入 IF Node。

今天要判斷的是:

status 是否等於 urgent

所以 IF Node 的概念就是:

Value 1:status
條件:is equal to
Value 2:urgent

而 status 的資料可以從前一個 Node 的 Input 選取,或使用 Expression 取得。

例如依照今天的資料結構,可能會從 Webhook 的 body 裡取得:

{{ $json.body.status }}

不過實際路徑還是要以自己 Webhook 收到的 JSON 結構為準。

https://ithelp.ithome.com.tw/upload/images/20260926/20178835DzM4LuL1g5.png

圖 3 設定 IF Node 判斷 status 是否為 urgent


Step 3:測試 True

先傳:

{
  "text": "系統發生錯誤,現在無法使用",
  "status": "urgent"
}

因為:

urgent = urgent

條件成立,所以資料應該會從 True 的路線出去。

這時候就代表 IF Node 判斷成功。


Step 4:再測試一次 False

只有測試 True 還不夠,所以再改一筆資料:

{
  "text": "希望之後可以增加深色模式",
  "status": "normal"
}

這次:

normal ≠ urgent

條件不成立,所以資料應該走 False。

https://ithelp.ithome.com.tw/upload/images/20260926/20178835dF7Bte3YUd.png

圖 4 IF Node 根據不同 status 將資料分流

這樣就證明 Workflow 真的會根據收到的內容走不同的路線。


把 Google Sheets 接回來

接著就可以跟昨天的 Google Sheets 結合。

例如:

Webhook

↓

IF Node

↙    ↘

True   False

↓     ↓

緊急處理 Google Sheets

      ↓

     儲存一般資料

目前「緊急處理」這邊甚至不用做得太複雜,可以先接一個簡單的節點,確認資料真的有走到不同路線。

等之後學到通知功能,再把它改成:

緊急資料 → 自動發送通知

這樣整個流程就會更實用了。


IF Node 跟 AI 有什麼差別?

做到這裡,我發現其實「判斷」也可以分成兩種。

如果資料本身已經有:

status = urgent

這種很明確的條件,就可以直接用 IF Node。

但是如果使用者只傳:

「系統一直當掉,我現在完全沒辦法工作。」

裡面根本沒有 urgent 這個欄位。

這時候單靠:

status == urgent

就沒有辦法判斷。

反而可以先讓 AI 分析:

這段文字屬於「緊急」還是「一般」?

AI 回傳:

urgent

再把結果交給 IF Node。

流程就可以變成:

Webhook → AI 分類 → IF Node 判斷 → 不同處理方式

這也是我覺得 AI 和一般自動化結合後比較有意思的地方。

AI 負責理解內容,IF Node 則負責根據結果控制 Workflow。


今天遇到的一個問題

IF Node 本身其實不難,真正比較容易出錯的是:

我要判斷的資料到底在哪裡?

有時候會以為資料是:

$json.status

但實際從 Webhook 收到後可能是在:

$json.body.status

所以如果 IF Node 一直判斷錯誤,我現在會先回去看前一個 Node 的 Output,確認 JSON 結構,再設定 Expression。

這也再次用到 Day 8 學到的 JSON。


今日小結

今天加入 IF Node 之後,Workflow 終於不再只有一條固定路線。

現在已經可以做到:

收到資料 → 判斷條件 → 選擇不同路線 → 執行不同工作

前幾天主要是在學「資料怎麼進來」和「資料怎麼處理」,今天則開始學:

Workflow 怎麼根據資料做決定。

目前我們已經有 Webhook、AI、IF Node 和 Google Sheets,基本的自動化流程也越來越完整。

不過現在如果出現緊急資料,我們雖然可以把它分流出來,卻還沒有真的通知任何人。

所以明天就把今天的 True 路線繼續完成:

判斷為緊急 → 自動發送通知


上一篇
Day 11|AI 做完不能就消失!把 n8n 的結果自動寫進 Google Sheets
下一篇
Day 13|不用一直盯著 n8n!讓 Workflow 自動發送 Email 通知
系列文
30 天打造我的 AI 自動化工作流 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言